﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace Goto.UX
{
    public class RoundButton : Button
    {
        public RoundButton()
        {
            DefaultStyleKey = typeof(RoundButton);
        }

        #region Icon
        public ImageSource Icon
        {
            get { return GetValue(IconProperty) as ImageSource; }
            set { SetValue(IconProperty, value); }
        }

        public static readonly DependencyProperty IconProperty = DependencyProperty.Register(
            "Icon",
            typeof(ImageSource),
            typeof(RoundButton),
            new PropertyMetadata()); 
        #endregion

        #region MouseOverColor
        public Brush MouseOverColor
        {
            get { return GetValue(MouseOverColorProperty) as Brush; }
            set { SetValue(MouseOverColorProperty, value); }
        }

        public static readonly DependencyProperty MouseOverColorProperty = DependencyProperty.Register(
            "MouseOverColor",
            typeof(Brush),
            typeof(RoundButton),
            new PropertyMetadata());
        #endregion

        #region Uri
        public Uri Uri
        {
            get { return GetValue(UriProperty) as Uri; }
            set { SetValue(UriProperty, value); }
        }

        public static readonly DependencyProperty UriProperty = DependencyProperty.Register(
            "Uri",
            typeof(Uri),
            typeof(RoundButton),
            new PropertyMetadata());
        #endregion

        #region CornerRadius
        public CornerRadius CornerRadius
        {
            get { return (CornerRadius)GetValue(CornerRadiusProperty); }
            set { SetValue(CornerRadiusProperty, value); }
        }

        public static readonly DependencyProperty CornerRadiusProperty = DependencyProperty.Register(
            "CornerRadius",
            typeof(CornerRadius),
            typeof(RoundButton),
            new PropertyMetadata(new CornerRadius(0.00)));
        #endregion

        #region BlurRadius
        public double BlurRadius
        {
            get { return (double)GetValue(BlurRadiusProperty); }
            set { SetValue(BlurRadiusProperty, value); }
        }

        public static readonly DependencyProperty BlurRadiusProperty = DependencyProperty.Register(
            "BlurRadius",
            typeof(double),
            typeof(RoundButton),
            new PropertyMetadata(0.00));
        #endregion
    }
}
